home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / powerd / modules.lha / modules / libraries / bgui.m < prev    next >
Encoding:
Text File  |  2000-06-04  |  65.9 KB  |  1,719 lines

  1. MODULE    'exec/tasks',
  2.             'intuition/classes',
  3.             'intuition/classusr',
  4.             'intuition/imageclass',
  5.             'intuition/gadgetclass',
  6.             'intuition/cghooks',
  7.             'libraries/commodities',
  8.             'libraries/gadtools',
  9.             'libraries/locale',
  10.             'utility/tagitem',
  11.             'utility/hooks',
  12.             'graphics/text',
  13.             'graphics/rastport',
  14.             'graphics/gfx',
  15.             'intuition/screens',
  16.             'intuition/intuition',
  17.             'devices/inputevent'
  18.  
  19. #define BGUINAME              'bgui.library'
  20. CONST   BGUI_MINIMUM          = 37
  21. CONST   BGUIVERSION           = 41             
  22.  
  23. CONST   BGUI_LABEL_IMAGE            =  0,
  24.         BGUI_FRAME_IMAGE            =  1,
  25.         BGUI_VECTOR_IMAGE           =  2,
  26.         BGUI_SYSTEM_IMAGE           =  3,
  27. /* 3 through 10 reserved. */
  28.         BGUI_BASE_GADGET            =  11,
  29.         BGUI_GROUP_GADGET           =  12,
  30.         BGUI_BUTTON_GADGET          =  13,
  31.         BGUI_CYCLE_GADGET           =  14,
  32.         BGUI_CHECKBOX_GADGET        =  15,
  33.         BGUI_INFO_GADGET            =  16,
  34.         BGUI_STRING_GADGET          =  17,
  35.         BGUI_PROP_GADGET            =  18,
  36.         BGUI_INDICATOR_GADGET       =  19,
  37.         BGUI_VIEW_GADGET            =  20,
  38.         BGUI_PROGRESS_GADGET        =  21,
  39.         BGUI_SLIDER_GADGET          =  22,
  40.         BGUI_LISTVIEW_GADGET        =  23,
  41.         BGUI_MX_GADGET              =  24,
  42.         BGUI_PAGE_GADGET            =  25,
  43.         BGUI_EXTERNAL_GADGET        =  26,
  44.         BGUI_SEPARATOR_GADGET       =  27,
  45.         BGUI_AREA_GADGET            =  28,
  46.         BGUI_RADIOBUTTON_GADGET     =  29,
  47.         BGUI_PALETTE_GADGET         =  30,
  48.         BGUI_POPBUTTON_GADGET       =  31,
  49. /* 32 through 39 reserved. */
  50.         BGUI_WINDOW_OBJECT          =  40,
  51.         BGUI_FILEREQ_OBJECT         =  41,
  52.         BGUI_COMMODITY_OBJECT       =  42,
  53.         BGUI_ASLREQ_OBJECT          =  43,
  54.         BGUI_FONTREQ_OBJECT         =  44,
  55.         BGUI_SCREENREQ_OBJECT       =  45,
  56.         BGUI_AREXX_OBJECT           =  46,
  57. /* 47 through 99 reserved. */
  58.         BGUI_NOTIFY_OBJECT          =  100,
  59.         BGUI_NOTIFYG_OBJECT         =  101
  60.  
  61. /* Typo */
  62. CONST   BGUI_SEPERATOR_GADGET =  27
  63.  
  64. /*****************************************************************************
  65.  *
  66.  *  BGUI requester definitions.
  67.  */
  68. OBJECT BGUIRequest
  69.     Flags:LONG,                 // See below
  70.     Title:PTR TO CHAR,          // Requester title
  71.     GadgetFormat:LONG,          // Gadget labels
  72.     TextFormat:LONG,            // Body text format
  73.     ReqPos:INT,                 // Requester position
  74.     TextAttr:PTR TO TextAttr,   // Body text format
  75.     Underscore:CHAR,            // Requester font
  76.     Reserved0:LONG,             // Set to 0
  77.     Screen:PTR TO Screen,       // Optional screen pointer
  78.     Reserved1:LONG              // Set to 0
  79.  
  80. CONST   BREQF_CENTERWINDOW              = 1,   // Center requester on the window
  81.         BREQF_LOCKWINDOW                = 2,   // Lock the parent window
  82.         BREQF_NO_PATTERN                = 4,   // Don't use back-fill pattern
  83.         BREQF_XEN_BUTTONS               = 8,   // Use XEN style buttons
  84.         BREQF_AUTO_ASPECT               = 16,  // Aspect-ratio dependant look
  85.         BREQF_FAST_KEYS                 = 32,  // Return/Esc hotkeys
  86.         BREQF_FUZZ_BUTTONS              = 64   // Use fuzz style buttons
  87.  
  88. /*****************************************************************************
  89.  *
  90.  *  BGUI localization definitions.
  91.  */
  92. OBJECT  BGUILocale
  93.     Locale:PTR TO Locale,           // Locale to use.
  94.     Catalog:PTR TO Catalog,         // Catalog to use.
  95.     LocaleStrHook:PTR TO Hook,      // Localization function.
  96.     CatalogStrHook:PTR TO Hook,     // Localization function.
  97.     UserData:LONG                   // For application use.
  98.  
  99. OBJECT  BGUILocaleStr
  100.     ID:LONG                 // ID of locale string.
  101.  
  102. OBJECT  BGUICatalogStr
  103.     ID:LONG,                // ID of locale string.
  104.     DefaultString:LONG      // Default string for this ID.
  105.  
  106. /*****************************************************************************
  107.  *
  108.  *  BGUI graphics definitions.
  109.  */
  110. OBJECT bguiPattern
  111.        Flags:LONG,               // flags (see below)
  112.        Left:INT,                 // offset into bitmap
  113.        Top:INT,
  114.        Width:INT,                // size of cut from bitmap
  115.        Height:INT,
  116.        BitMap:PTR TO BitMap,     // pattern bitmap
  117.        Object:PTR TO _Object     // datatype object
  118.  
  119. CONST    BPF_RELATIVE_ORIGIN             = 1      // Origin relative to box
  120.  
  121. CONST    BGUI_TB                         = $800F0000,
  122.         BGUI_MB                         = $F0000
  123.  
  124. /*****************************************************************************
  125.  *
  126.  *      Class implementor information.
  127.  */
  128.  
  129. OBJECT DispatcherFunction
  130.     MethodID:LONG,
  131.     Func:LONG
  132.  
  133. CONST    DF_END = -1
  134.  
  135. /* For use with the BGUI_MakeClass() call. */
  136.  
  137. CONST   CLASS_SuperClass                = BGUI_TB+10001,
  138.         CLASS_SuperClassID              = BGUI_TB+10002,
  139.         CLASS_SuperClassBGUI            = BGUI_TB+10003,
  140.         CLASS_ClassID                   = BGUI_TB+10004,
  141.         CLASS_ClassSize                 = BGUI_TB+10005,
  142.         CLASS_ObjectSize                = BGUI_TB+10006,
  143.         CLASS_Flags                     = BGUI_TB+10007,
  144.         CLASS_Dispatcher                = BGUI_TB+10008,
  145.         CLASS_DFTable                   = BGUI_TB+10009
  146.  
  147. OBJECT BGUIClassBase
  148.     Library:LONG,
  149.     Class:PTR TO IClass
  150.  
  151. /*****************************************************************************
  152.  *
  153.  *  "frameclass" - BOOPSI framing image.
  154.  *
  155.  *  Tags: 1 - 80    Methods: 1 - 40
  156.  */
  157. CONST    FRM_TAGSTART                    = BGUI_TB+1,
  158.         FRM_Type                        = BGUI_TB+1,     /* ISG-- */
  159.         FRM_CustomHook                  = BGUI_TB+2,     /* ISG-- */
  160.         FRM_BackFillHook                = BGUI_TB+3,     /* ISG-- */
  161.         FRM_Title                       = BGUI_TB+4,     /* ISG-- */
  162.         FRM_TextAttr                    = BGUI_TB+5,     /* ISG-- */
  163.         FRM_Flags                       = BGUI_TB+6,     /* ISG-- */
  164.         FRM_FrameWidth                  = BGUI_TB+7,     /* ISG-- */
  165.         FRM_FrameHeight                 = BGUI_TB+8,     /* ISG-- */
  166.         FRM_BackFill                    = BGUI_TB+9,     /* ISG-- */
  167.         FRM_EdgesOnly                   = BGUI_TB+10,    /* ISG-- */
  168.         FRM_Recessed                    = BGUI_TB+11,    /* ISG-- */
  169.         FRM_CenterTitle                 = BGUI_TB+12,    /* ISG-- */
  170.         FRM_HighlightTitle              = BGUI_TB+13,    /* ISG-- */
  171.         FRM_ThinFrame                   = BGUI_TB+14,    /* ISG-- */
  172.         FRM_BackPen                     = BGUI_TB+15,    /* ISG-- */  /* V39 */
  173.         FRM_SelectedBackPen             = BGUI_TB+16,    /* ISG-- */  /* V39 */
  174.         FRM_BackDriPen                  = BGUI_TB+17,    /* ISG-- */  /* V39 */
  175.         FRM_SelectedBackDriPen          = BGUI_TB+18,    /* ISG-- */  /* V39 */
  176.         FRM_TitleLeft                   = BGUI_TB+19,    /* ISG-- */  /* V40 */
  177.         FRM_TitleRight                  = BGUI_TB+20,    /* ISG-- */  /* V40 */
  178.         FRM_BackRasterPen               = BGUI_TB+21,    /* ISG-- */  /* V41 */
  179.         FRM_BackRasterDriPen            = BGUI_TB+22,    /* ISG-- */  /* V41 */
  180.         FRM_SelectedBackRasterPen       = BGUI_TB+23,    /* ISG-- */  /* V41 */
  181.         FRM_SelectedBackRasterDriPen    = BGUI_TB+24,    /* ISG-- */  /* V41 */
  182.         FRM_Template                    = BGUI_TB+25,    /* IS--- */  /* V41 */
  183.         FRM_TitleID                     = BGUI_TB+26,    /* ISG-- */  /* V41 */
  184.         FRM_FillPattern                 = BGUI_TB+27,    /* ISG-- */  /* V41 */
  185.         FRM_SelectedFillPattern         = BGUI_TB+28,    /* ISG-- */  /* V41 */
  186.         FRM_OuterOffsetLeft             = BGUI_TB+31,    /* ISG-- */  /* V41 */
  187.         FRM_OuterOffsetRight            = BGUI_TB+32,    /* ISG-- */  /* V41 */
  188.         FRM_OuterOffsetTop              = BGUI_TB+33,    /* ISG-- */  /* V41 */
  189.         FRM_OuterOffsetBottom           = BGUI_TB+34,    /* ISG-- */  /* V41 */
  190.         FRM_InnerOffsetLeft             = BGUI_TB+35,    /* ISG-- */  /* V41 */
  191.         FRM_InnerOffsetRight            = BGUI_TB+36,    /* ISG-- */  /* V41 */
  192.         FRM_InnerOffsetTop              = BGUI_TB+37,    /* ISG-- */  /* V41 */
  193.         FRM_InnerOffsetBottom           = BGUI_TB+38,    /* ISG-- */  /* V41 */
  194.         FRM_TAGDONE                     = BGUI_TB+80,
  195.  
  196. /* Back fill types */
  197.         STANDARD_FILL                   = 0,
  198.         SHINE_RASTER                    = 1,
  199.         SHADOW_RASTER                   = 2,
  200.         SHINE_SHADOW_RASTER             = 3,
  201.         FILL_RASTER                     = 4,
  202.         SHINE_FILL_RASTER               = 5,
  203.         SHADOW_FILL_RASTER              = 6,
  204.         SHINE_BLOCK                     = 7,
  205.         SHADOW_BLOCK                    = 8,
  206.         FILL_BLOCK                      = 9,        /* V41 */
  207.  
  208. /* Flags */
  209.         FRF_EDGES_ONLY                  = 1,
  210.         FRF_RECESSED                    = 2,
  211.         FRF_CENTER_TITLE                = 4,
  212.         FRF_HIGHLIGHT_TITLE             = 8,
  213.         FRF_THIN_FRAME                  = 16,
  214.         FRF_TITLE_LEFT                  = 32,         /* V40 */
  215.         FRF_TITLE_RIGHT                 = 64          /* V40 */
  216.  
  217. ENUM    FRB_EDGES_ONLY,
  218.         FRB_RECESSED,
  219.         FRB_CENTER_TITLE,
  220.         FRB_HIGHLIGHT_TITLE,
  221.         FRB_THIN_FRAME,
  222.         FRB_TITLE_LEFT,         /* V40 */
  223.         FRB_TITLE_RIGHT         /* V40 */
  224.  
  225. /* Frame types */
  226. CONST    FRTYPE_CUSTOM                   = 0,
  227.         FRTYPE_BUTTON                   = 1,
  228.         FRTYPE_RIDGE                    = 2,
  229.         FRTYPE_DROPBOX                  = 3,
  230.         FRTYPE_NEXT                     = 4,
  231.         FRTYPE_RADIOBUTTON              = 5,
  232.         FRTYPE_XEN_BUTTON               = 6,
  233.         FRTYPE_TAB_ABOVE                = 7,    /* V40 */
  234.         FRTYPE_TAB_BELOW                = 8,    /* V40 */
  235.         FRTYPE_BORDER                   = 9,    /* V40 */
  236.         FRTYPE_NONE                     = 10,   /* V40 */
  237.         FRTYPE_FUZZ_BUTTON              = 11,   /* V41 */
  238.         FRTYPE_FUZZ_RIDGE               = 12,   /* V41 */
  239.         FRTYPE_TAB_TOP                  = 13,   /* V41.8 */
  240.         FRTYPE_TAB_BOTTOM               = 14,
  241.         FRTYPE_TAB_LEFT                 = 15,
  242.         FRTYPE_TAB_RIGHT                = 16,
  243.  
  244.         FRTYPE_DEFAULT                  = -1,   /* 41.8 */
  245.  
  246.         FRAMEM_BACKFILL                 = BGUI_MB+21
  247.  
  248. /* Backfill a specific rectangle with the backfill hook. */
  249. OBJECT FMBackFill
  250.     MethodID:LONG,            /* FRM_RENDER                     */
  251.     RPort:PTR TO RastPort,    /* RastPort ready for rendering   */
  252.     DrawInfo:PTR TO DrawInfo, /* All you need to render         */
  253.     Bounds:PTR TO Rectangle,  /* Rendering bounds.              */
  254.     State:LONG                /* See "intuition/imageclass.h"   */
  255.  
  256. /*
  257.  *  FRM_RENDER:
  258.  *
  259.  *  The message packet sent to both the FRM_CustomHook
  260.  *  and FRM_BackFillHook routines. Note that this
  261.  *  structure is READ-ONLY!
  262.  *
  263.  */
  264. CONST    FRM_RENDER                      = 1 /* Render yourself           */
  265.  
  266. OBJECT FrameDrawMsg
  267.     MethodID:LONG,               // FRM_RENDER
  268.     RPort:PTR TO RastPort,       // RastPort ready for rendering
  269.     DrawInfo:PTR TO DrawInfo,    // All you need to render
  270.     Bounds:PTR TO Rectangle,     // Rendering bounds
  271.     State:INT,                   // See "intuition/imageclass.h"
  272.     Horizontal:CHAR,             // Horizontal thickness
  273.     Vertical:CHAR                // Vertical thickness
  274.  
  275. /*
  276.  *  FRM_THICKNESS:
  277.  *
  278.  *  The message packet sent to the FRM_Custom hook.
  279.  */
  280. CONST   FRM_THICKNESS   = 2 /* Give the default frame thickness. */
  281.  
  282. OBJECT ThicknessMsg
  283.     MethodID:LONG,                       // FRM_THICKNESS
  284.     ThicknessHorizontal:PTR TO CHAR,     // Storage for horizontal
  285.     ThicknessVertical:PTR TO CHAR,       // Storage for vertical
  286.     Thin:INT                             // Added in V38!
  287.  
  288. /* Possible hook return codes. */
  289. CONST    FRC_OK              = 0,             /* OK        */
  290.         FRC_UNKNOWN         = 1,             /* Unknow method */
  291.  
  292. /*****************************************************************************
  293.  *
  294.  *  "labelclass" - BOOPSI labeling image.
  295.  *
  296.  *  Tags: 81 - 160      Methods: 1 - 40
  297.  */
  298.         LAB_TAGSTART        = BGUI_TB+81,
  299.         LAB_TextAttr        = BGUI_TB+81,    /* ISG-- */
  300.         LAB_Style           = BGUI_TB+82,    /* ISG-- */
  301.         LAB_Underscore      = BGUI_TB+83,    /* ISG-- */
  302.         LAB_Place           = BGUI_TB+84,    /* ISG-- */
  303.         LAB_Label           = BGUI_TB+85,    /* ISG-- */
  304.         LAB_Flags           = BGUI_TB+86,    /* ISG-- */
  305.         LAB_Highlight       = BGUI_TB+87,    /* ISG-- */
  306.         LAB_HighUScore      = BGUI_TB+88,    /* ISG-- */
  307.         LAB_Pen             = BGUI_TB+89,    /* ISG-- */
  308.         LAB_SelectedPen     = BGUI_TB+90,    /* ISG-- */
  309.         LAB_DriPen          = BGUI_TB+91,    /* ISG-- */
  310.         LAB_SelectedDriPen  = BGUI_TB+92,    /* ISG-- */
  311.         LAB_LabelID         = BGUI_TB+93,    /* ISG-- */ /* V41 */
  312.         LAB_Template        = BGUI_TB+94,    /* IS--- */ /* V41 */
  313.         LAB_NoPlaceIn       = BGUI_TB+95,    /* ISG-- */     /* V41.7 */
  314.         LAB_SelectedStyle   = BGUI_TB+96,    /* ISG-- */     /* V41.7 */
  315.         LAB_FlipX           = BGUI_TB+97,    /* ISG-- */     /* V41.7 */
  316.         LAB_FlipY           = BGUI_TB+98,    /* ISG-- */     /* V41.7 */
  317.         LAB_FlipXY          = BGUI_TB+99,    /* ISG-- */     /* V41.7 */
  318.         LAB_TAGDONE         = BGUI_TB+160,
  319.  
  320. /* Flags */
  321.         LABF_HIGHLIGHT      = 1, /* Highlight label    */
  322.         LABF_HIGH_USCORE    = 2, /* Highlight underscoring */
  323.         LABF_FLIP_X         = 4, /* Flip across x axis     */
  324.         LABF_FLIP_Y         = 8, /* Flip across y axis     */
  325.         LABF_FLIP_XY        = 16,/* Flip across x = y      */
  326.  
  327.         LABB_HIGHTLIGHT     = 0, /* Highlight label    */
  328.         LABB_HIGH_USCORE    = 1, /* Highlight underscoring */
  329.         LABB_FLIP_X         = 2, /* Flip across x axis     */
  330.         LABB_FLIP_Y         = 3, /* Flip across y axis     */
  331.         LABB_FLIP_XY        = 4, /* Flip across x = y      */
  332.  
  333. /* Label placement */
  334.         PLACE_IN            = 0,
  335.         PLACE_LEFT          = 1,
  336.         PLACE_RIGHT         = 2,
  337.         PLACE_ABOVE         = 3,
  338.         PLACE_BELOW         = 4,
  339.  
  340. /* New methods */
  341. /*
  342.  *  The IM_EXTENT method is used to find out how many
  343.  *  pixels the label extents the relative hitbox in
  344.  *  either direction. Normally this method is called
  345.  *  by the baseclass.
  346.  */
  347.         IM_EXTENT           = BGUI_MB+1
  348.  
  349. OBJECT ImpExtent
  350.     MethodID:LONG,                  /* IM_EXTENT            */
  351.     RPort:PTR TO RastPort,          /* RastPort         */
  352.     Extent:PTR TO IBox,             /* Storage for extentions.  */
  353.     LabelSizeWidth:PTR TO INT,      /* Storage width in pixels  */
  354.     LabelSizeHeight:PTR TO INT,     /* Storage height in pixels */
  355.     Flags:INT                       /* See below.           */
  356.  
  357. CONST   EXTF_MAXIMUM        = 1, /* Request maximum extensions. */
  358.  
  359. /*****************************************************************************
  360.  *
  361.  *  "vectorclass" - BOOPSI scalable vector image.
  362.  *
  363.  *  Tags: 161 - 240
  364.  *
  365.  *  Based on an idea found in the ObjectiveGadTools.library
  366.  *  by Davide Massarenti.
  367.  */
  368.         VIT_TAGSTART        = BGUI_TB+161,
  369.         VIT_VectorArray     = BGUI_TB+161,   /* ISG-- */
  370.         VIT_BuiltIn         = BGUI_TB+162,   /* ISG-- */
  371.         VIT_Pen             = BGUI_TB+163,   /* ISG-- */
  372.         VIT_DriPen          = BGUI_TB+164,   /* ISG-- */
  373.         VIT_ScaleWidth      = BGUI_TB+165,   /* --G-- */ /* V41 */
  374.         VIT_ScaleHeight     = BGUI_TB+166,   /* --G-- */ /* V41 */
  375.         VIT_TAGDONE         = BGUI_TB+240
  376.  
  377. /*
  378.  *  Command structure which can contain
  379.  *  coordinates, data and command flags.
  380.  */
  381. OBJECT VectorItem
  382.     x:INT,        /* X coordinate or data */
  383.     y:INT,        /* Y coordinate         */
  384.     flags:LONG    /* See below        */
  385.  
  386. /* Flags */
  387. SET    VIF_MOVE,           /* Move to x, y           */
  388.         VIF_DRAW,           /* Draw to x, y           */
  389.         VIF_AREASTART,      /* Start AreaFill at x, y     */
  390.         VIF_AREAEND,        /* End AreaFill at x, y       */
  391.         VIF_XRELRIGHT,      /* x relative to right edge      */
  392.         VIF_YRELBOTTOM,     /* y relative to bottom edge     */
  393.         VIF_SHADOWPEN,      /* switch to SHADOWPEN, Move/Draw   */
  394.         VIF_SHINEPEN,       /* switch to SHINEPEN, Move/Draw    */
  395.         VIF_FILLPEN,        /* switch to FILLPEN, Move/Draw     */
  396.         VIF_TEXTPEN,        /* switch to TEXTPEN, Move/Draw     */
  397.         VIF_COLOR,          /* switch to color in x      */
  398.         VIF_LASTITEM,       /* last element of the element list */
  399.         VIF_SCALE,          /* X & Y are design width & height  */
  400.         VIF_DRIPEN,         /* switch to dripen x        */
  401.         VIF_AOLPEN,         /* set area outline pen x        */
  402.         VIF_AOLDRIPEN,      /* set area outline dripen x     */
  403.         VIF_ENDOPEN,        /* end area outline pen             */
  404.         VIF_MINSIZE,        /* X & Y are minimum size            */  /* V41.8 */
  405.         VIF_LINEPATTERN,    /* Use line pattern in vc_x          */
  406.         VIF_BPEN,           /* Interpret vc_y as bpen            */
  407.         VIF_DRAWMODE        /* Draw mode                         */
  408.  
  409.  
  410. /* Built-in images. */
  411. ENUM    BUILTIN_GETPATH = 1,
  412.         BUILTIN_GETFILE,
  413.         BUILTIN_CHECKMARK,
  414.         BUILTIN_POPUP,
  415.         BUILTIN_ARROW_UP,
  416.         BUILTIN_ARROW_DOWN,
  417.         BUILTIN_ARROW_LEFT,
  418.         BUILTIN_ARROW_RIGHT,
  419.         BUILTIN_CYCLE,          /* V41 */
  420.         BUILTIN_CYCLE2,         /* V41 */
  421.         BUILTIN_RADIOBUTTON     /* V41 */
  422.  
  423. /* Design width and heights of the built-in images. */
  424. CONST   GETPATH_WIDTH       = 20,
  425.         GETPATH_HEIGHT      = 14,
  426.         GETFILE_WIDTH       = 20,
  427.         GETFILE_HEIGHT      = 14,
  428.         CHECKMARK_WIDTH     = 24,
  429.         CHECKMARK_HEIGHT    = 11,
  430.         POPUP_WIDTH         = 15,
  431.         POPUP_HEIGHT        = 13,
  432.         ARROW_UP_WIDTH      = 16,
  433.         ARROW_UP_HEIGHT     = 9,
  434.         ARROW_DOWN_WIDTH    = 16,
  435.         ARROW_DOWN_HEIGHT   = 9,
  436.         ARROW_LEFT_WIDTH    = 10,
  437.         ARROW_LEFT_HEIGHT   = 12,
  438.         ARROW_RIGHT_WIDTH   = 10,
  439.         ARROW_RIGHT_HEIGHT  = 12,
  440.  
  441. /*****************************************************************************
  442.  *
  443.  *  "baseclass" - BOOPSI base gadget.
  444.  *
  445.  *  Tags: 241 - 320         Methods: 41 - 80
  446.  *
  447.  *  This is a very important BGUI gadget class. All other gadget classes
  448.  *  are sub-classed from this class. It will handle stuff like online
  449.  *  help, notification, labels and frames etc. If you want to write a
  450.  *  gadget class for BGUI be sure to subclass it from this class. That
  451.  *  way your class will automatically inherit the same features.
  452.  */
  453.         BT_TAGSTART                 = BGUI_TB+241,
  454.         BT_HelpFile                 = BGUI_TB+241,   /* IS--- */
  455.         BT_HelpNode                 = BGUI_TB+242,   /* IS--- */
  456.         BT_HelpLine                 = BGUI_TB+243,   /* IS--- */
  457.         BT_Inhibit                  = BGUI_TB+244,   /* --G-- */
  458.         BT_HitBox                   = BGUI_TB+245,   /* --G-- */
  459.         BT_LabelObject              = BGUI_TB+246,   /* -SG-- */
  460.         BT_FrameObject              = BGUI_TB+247,   /* -SG-- */
  461.         BT_TextAttr                 = BGUI_TB+248,   /* ISG-- */
  462.         BT_NoRecessed               = BGUI_TB+249,   /* -S--- */
  463.         BT_LabelClick               = BGUI_TB+250,   /* IS--- */
  464.         BT_HelpText                 = BGUI_TB+251,   /* IS--- */
  465.         BT_ToolTip                  = BGUI_TB+252,   /* ISG-- */  /* V40 */
  466.         BT_DragObject               = BGUI_TB+253,   /* ISG-- */  /* V40 */
  467.         BT_DropObject               = BGUI_TB+254,   /* ISG-- */  /* V40 */
  468.         BT_DragTreshold             = BGUI_TB+255,   /* ISG-- */  /* V40 */
  469.         BT_DragQualifier            = BGUI_TB+256,   /* ISG-- */  /* V40 */
  470.         BT_Key                      = BGUI_TB+257,   /* ISG-- */  /* V41.2 */
  471.         BT_RawKey                   = BGUI_TB+258,   /* ISG-- */  /* V41.2 */
  472.         BT_Qualifier                = BGUI_TB+259,   /* ISG-- */  /* V41.2 */
  473.         BT_HelpTextID               = BGUI_TB+260,   /* ISG-- */  /* V41.3 */
  474.         BT_ToolTipID                = BGUI_TB+261,   /* ISG-- */  /* V41.3 */
  475.         BT_MouseActivation          = BGUI_TB+262,   /* ISG-- */  /* V41.5 */
  476.         BT_Reserved1                = BGUI_TB+263,   /* ISG-- */  /* V41.6 */
  477.         BT_Reserved2                = BGUI_TB+264,   /* ISG-- */  /* V41.6 */
  478.         BT_Buffer                   = BGUI_TB+265,   /* ISG-- */  /* V41.6 */
  479.         BT_LeftOffset               = BGUI_TB+266,   /* ISG-- */  /* V41.6 */
  480.         BT_RightOffset              = BGUI_TB+267,   /* ISG-- */  /* V41.6 */
  481.         BT_TopOffset                = BGUI_TB+268,   /* ISG-- */  /* V41.6 */
  482.         BT_BottomOffset             = BGUI_TB+269,   /* ISG-- */  /* V41.6 */
  483.         BT_HelpHook                 = BGUI_TB+270,   /* ISG-- */  /* V41.7 */
  484.         BT_OuterBox                 = BGUI_TB+271,   /* --G-- */  /* V41.8 */
  485.         BT_InnerBox                 = BGUI_TB+272,   /* --G-- */
  486.         BT_PostRenderHighestClass   = BGUI_TB+273,   /* --G-- */
  487.         BT_TAGDONE                  = BGUI_TB+320,
  488.  
  489.         MOUSEACT_RMB_ACTIVE = 1,
  490.         MOUSEACT_RMB_REPORT = 2,
  491.         MOUSEACT_MMB_ACTIVE = 4,
  492.         MOUSEACT_MMB_REPORT = 8,
  493.  
  494. /* New methods */
  495.         BASE_ADDMAP         = BGUI_MB+41
  496.  
  497. /* Add an object to the maplist notification list. */
  498. OBJECT BMAddMap
  499.     MethodID:LONG,
  500.     Object:PTR TO _Object,
  501.     MapList:PTR TO TagItem
  502.  
  503. CONST   BASE_ADDCONDITIONAL     = BGUI_MB+42
  504.  
  505. /* Add an object to the conditional notification list. */
  506. OBJECT BMAddConditional
  507.     MethodID:LONG,
  508.     Object:PTR TO _Object,
  509.     Condition:TagItem,
  510.     True:TagItem,
  511.     False:TagItem
  512.  
  513. CONST   BASE_ADDMETHOD          = BGUI_MB+43
  514.  
  515. /* Add an object to the method notification list. */
  516. OBJECT BMAddMethod
  517.     MethodID:LONG,
  518.     Object:PTR TO _Object,
  519.     Flags:LONG,
  520.     Size:LONG,
  521.     AMethodID:LONG
  522.  
  523. SET    BAMF_NO_GINFO,  /* Do not send GadgetInfo. */
  524.         BAMF_NO_INTERIM /* Skip interim messages.  */
  525.  
  526. CONST    BASE_REMMAP             = BGUI_MB+44,
  527.         BASE_REMCONDITIONAL     = BGUI_MB+45,
  528.         BASE_REMMETHOD          = BGUI_MB+46
  529.  
  530. /* Remove an object from a notification list. */
  531. OBJECT BMRemove
  532.     MethodID:LONG,
  533.     Object:PTR TO _Object
  534.  
  535. CONST   BASE_SHOWHELP           = BGUI_MB+47
  536.  
  537. /* Show attached online-help. */
  538. OBJECT BMShowHelp
  539.     MethodID:LONG,
  540.     Window:PTR TO  Window,
  541.     Requester:PTR TO Requester,
  542.     MouseX:INT,
  543.     MouseY:INT
  544.  
  545. ENUM    BMHELP_OK,        /* OK, no problems.       */
  546.         BMHELP_NOT_ME,    /* Mouse not over the object. */
  547.         BMHELP_FAILURE    /* Showing failed.        */
  548.  
  549. CONST   BASE_UNUSED1            = BGUI_MB+48,
  550.         BASE_UNUSED2            = BGUI_MB+49,
  551.         BASE_UNUSED3            = BGUI_MB+50,
  552.         BASE_UNUSED4            = BGUI_MB+51
  553.  
  554. CONST   BASE_ADDHOOK            = BGUI_MB+52
  555.  
  556. /* Add a hook to the hook-notification list. */
  557. OBJECT BMAddHook
  558.     MethodID:LONG,
  559.     Hook:PTR TO Hook
  560.  
  561. /* Remove a hook from the hook-notification list. */
  562. CONST   BASE_REMHOOK            = BGUI_MB+53,
  563.         BASE_DRAGGING           = BGUI_MB+54 /* V40 */
  564.  
  565. /* Return codes for the BASE_DRAGGING method. */
  566. CONST   BDR_NONE            = 0, /* Handle input yourself.   */
  567.         BDR_DRAGPREPARE     = 1, /* Prepare for dragging.    */
  568.         BDR_DRAGGING        = 2, /* Don't handle events.     */
  569.         BDR_DROP            = 3, /* Image dropped.       */
  570.         BDR_CANCEL          = 4  /* Drag canceled.       */
  571.  
  572. CONST   BASE_DRAGQUERY          = BGUI_MB+55 /* V40 */
  573.  
  574. /* For both BASE_DRAGQUERY and BASE_DRAGUPDATE. */
  575. OBJECT BMDragPoint
  576.     MethodID:LONG,               // BASE_DRAGQUERY
  577.     GInfo:PTR TO GadgetInfo,     // GadgetInfo
  578.     Source:PTR TO _Object,       // Object querying.
  579.     MouseX:INT,                  // Mouse coords.
  580.     MouseY:INT                   // Mouse coords.
  581.  
  582. /* Return codes for BASE_DRAGQUERY. */
  583. CONST   BQR_REJECT = 0,  /* Object will not accept drop. */
  584.         BQR_ACCEPT = 1  /* Object will accept drop. */
  585.  
  586. CONST   BASE_DRAGUPDATE         = BGUI_MB+56 /* V40 */
  587.  
  588. /* Return codes for BASE_DRAGUPDATE. */
  589. CONST   BUR_CONTINUE= 0, /* Continue drag. */
  590.         BUR_ABORT   = 1  /* Abort drag.    */
  591.  
  592. CONST   BASE_DROPPED            = BGUI_MB+57 /* V40 */
  593.  
  594. /* Source object is dropped. */
  595. OBJECT BMDropped
  596.     MethodID:LONG,
  597.     GInfo:PTR TO GadgetInfo,         // GadgetInfo structure
  598.     Source:PTR TO _Object,           // Object dropped
  599.     SourceWin:PTR TO Window,         // Source obj window
  600.     SourceReq:PTR TO Requester       // Source onj requester
  601.  
  602. CONST   BASE_DRAGACTIVE         = BGUI_MB+58, /* V40 */
  603.         BASE_DRAGINACTIVE       = BGUI_MB+59 /* V40 */
  604.  
  605. /* Used by both methods defined above. */
  606. OBJECT BMDragMsg
  607.     MethodID:LONG,
  608.     GInfo:PTR TO GadgetInfo,        // GadgetInfo structure
  609.     Source:PTR TO _Object           // Object being dragged
  610.  
  611. CONST   BASE_GETDRAGOBJECT      = BGUI_MB+60 /* V40 */
  612.  
  613. /* Obtain BitMap image to drag. */
  614. OBJECT BMGetDragObject
  615.     MethodID:LONG,               // BASE_GETDRAGOBJECT
  616.     GInfo:PTR TO GadgetInfo,     // GadgetInfo
  617.     Bounds:PTR TO IBox           // Bounds to buffer
  618.  
  619. CONST   BASE_FREEDRAGOBJECT     = BGUI_MB+61 /* V40 */
  620.  
  621. /* Free BitMap image being dragged. */
  622. OBJECT BMFreeDragObject
  623.     MethodID:LONG,                   // BASE_FREEDRAGOBJECT
  624.     GInfo:PTR TO GadgetInfo,         // GadgetInfo
  625.     ObjBitMap:PTR TO BitMap          // BitMap to free
  626.  
  627. CONST   BASE_INHIBIT            = BGUI_MB+62
  628.  
  629. /* Inhibit/uninhibit this object.       */
  630. OBJECT BMInhibit
  631.     MethodID:LONG,                   // BASE_INHIBIT
  632.     Inhibit:LONG                     // Inhinit on/off
  633.  
  634. CONST   BASE_FINDKEY            = BGUI_MB+63     /* V41 */
  635.  
  636. /* Locate object with this rawkey.  */
  637. OBJECT  BMFindKey
  638.     MethodID:LONG,           // BASE_FINDKEY
  639.     Qual:INT,                // Key to find
  640.     Key:INT
  641.  
  642. CONST   BASE_KEYLABEL           = BGUI_MB+64     /* V41 */
  643.  
  644. /* Attach key in this label to the object.  */
  645. OBJECT  BMKeyLabel
  646.     MethodID:LONG   // BASE_KEYLABEL
  647.  
  648. CONST   BASE_LOCALIZE           = BGUI_MB+65     /* V41 */
  649.  
  650. /* Localize this object.            */
  651. OBJECT BMLocalize
  652.     MethodID:LONG,
  653.     Locale:PTR TO BGUILocale
  654.  
  655. /*****************************************************************************
  656.  *
  657.  *  "groupclass" - BOOPSI group gadget.
  658.  *
  659.  *  Tags: 321 - 400         Methods: 81 - 120
  660.  *
  661.  *  This class is the actual bgui.library layout engine. It will layout
  662.  *  all members in a specific area. Two group types are available,
  663.  *  horizontal and vertical groups.
  664.  */
  665. CONST   GROUP_Style             = BGUI_TB+321,   /* I---- */
  666.         GROUP_Spacing           = BGUI_TB+322,   /* I---- */
  667.         GROUP_HorizOffset       = BGUI_TB+323,   /* I---- */
  668.         GROUP_VertOffset        = BGUI_TB+324,   /* I---- */
  669.         GROUP_LeftOffset        = BGUI_TB+325,   /* I---- */
  670.         GROUP_TopOffset         = BGUI_TB+326,   /* I---- */
  671.         GROUP_RightOffset       = BGUI_TB+327,   /* I---- */
  672.         GROUP_BottomOffset      = BGUI_TB+328,   /* I---- */
  673.         GROUP_Member            = BGUI_TB+329,   /* I---- */
  674.         GROUP_SpaceObject       = BGUI_TB+330,   /* I---- */
  675.         GROUP_BackFill          = BGUI_TB+331,   /* I---- */
  676.         GROUP_EqualWidth        = BGUI_TB+332,   /* I---- */
  677.         GROUP_EqualHeight       = BGUI_TB+333,   /* I---- */
  678.         GROUP_Inverted          = BGUI_TB+334,   /* I---- */
  679.         GROUP_BackPen           = BGUI_TB+335,   /* I---- */  /* V40 */
  680.         GROUP_BackDriPen        = BGUI_TB+336,   /* I---- */  /* V40 */
  681.         GROUP_Offset            = BGUI_TB+337,   /* I---- */  /* V41 */
  682.         GROUP_HorizSpacing      = BGUI_TB+338,   /* IS--- */  /* V41.7 */
  683.         GROUP_VertSpacing       = BGUI_TB+339,   /* IS--- */  /* V41.7 */
  684.         GROUP_LayoutHook        = BGUI_TB+340,   /* I---- */  /* V41.7 */
  685.  
  686. /* Object layout attributes. */
  687.         LGO_TAGSTART            = BGUI_TB+381,
  688.         LGO_FixWidth            = BGUI_TB+381,
  689.         LGO_FixHeight           = BGUI_TB+382,
  690.         LGO_Weight              = BGUI_TB+383,
  691.         LGO_FixMinWidth         = BGUI_TB+384,
  692.         LGO_FixMinHeight        = BGUI_TB+385,
  693.         LGO_Align               = BGUI_TB+386,
  694.         LGO_NoAlign             = BGUI_TB+387,                  /* V38 */
  695.         LGO_FixAspect           = BGUI_TB+388,                  /* V41 */
  696.         LGO_Visible             = BGUI_TB+389,   /* IS--- */  /* V41 */
  697.         LGO_Custom              = BGUI_TB+400,   /* IS--- */  /* V41.7 */
  698.         LGO_TAGDONE             = BGUI_TB+400,
  699.  
  700. /* Default object weight. */
  701.         DEFAULT_WEIGHT          = 50,
  702.  
  703. /* Group styles. */
  704.         GRSTYLE_HORIZONTAL      = 0,
  705.         GRSTYLE_VERTICAL        = 1,
  706.         GRSPACE_NARROW          = -1,                          /* V41 */
  707.         GRSPACE_NORMAL          = -2,                         /* V41 */
  708.         GRSPACE_WIDE            = -3,                         /* V41 */
  709.  
  710. /* New methods. */
  711.         GRM_ADDMEMBER           = BGUI_MB+81
  712.  
  713. /* Add a member to the group. */
  714. OBJECT GrMAddMember
  715.     MethodID:LONG,           // GRM_ADDMEMBER
  716.     Member:PTR TO _Object,   // Object to add
  717.     Attr:LONG                // First of LGO attributes
  718.  
  719. CONST   GRM_REMMEMBER           = BGUI_MB+82
  720.  
  721. /* Remove a member from the group. */
  722. OBJECT GrMRemMember
  723.     MethodID:LONG,           // GRM_REMMEMBER
  724.     Member:PTR TO _Object    // Object to remove
  725.  
  726. CONST   GRM_DIMENSIONS          = BGUI_MB+83
  727.  
  728. /* Ask an object it's dimensions information. */
  729. OBJECT GrMDimensions
  730.     MethodID:LONG,               // GRM_DIMENSIONS
  731.     GInfo:PTR TO GadgetInfo,     // Can be NIL!
  732.     RPort:PTR TO RastPort,       // Ready for calculations
  733.     MinSizeWidth:PTR TO INT,
  734.     MinSizeHeight:PTR TO INT,
  735.     Flags:LONG                   // See below
  736.  
  737. /* Flags */
  738. CONST   GDIMF_NO_FRAME          = 1,  // Don't take frame width/height into consideration
  739.         GDIMF_NO_OFFSET         = 2, // No inner offset from frame
  740.         GDIMF_MAXIMUMS          = 4,  /* The grmd_MaxSize is requested.       */
  741.  
  742.         GRM_ADDSPACEMEMBER      = BGUI_MB+84
  743.  
  744. /* Add a weight controlled spacing member. */
  745. OBJECT GrMAddSpaceMember
  746.     MethodID:LONG,       // GRM_ADDSPACEMEMBER
  747.     Weight:LONG          // Object weight
  748.  
  749. CONST   GRM_INSERTMEMBER        = BGUI_MB+85
  750.  
  751. /* Insert a member in the group. */
  752. OBJECT GrMInsertMember
  753.     MethodID:LONG,           // GRM_INSERTMEMBER
  754.     Member:PTR TO _Object,   // Member to insert
  755.     Pred:PTR TO _Object,     // Insert after this member
  756.     Attr:LONG                // First of LGO attributes
  757.  
  758. CONST   GRM_REPLACEMEMBER       = BGUI_MB+86    /* V40 */
  759.  
  760. /* Replace a member in the group. */
  761. OBJECT GrMReplaceMember
  762.     MethodID:LONG,           // GRM_REPLACEMEMBER
  763.     MemberA:PTR TO _Object,  // Object to replace
  764.     MemberB:PTR TO _Object,  // Object which replaces
  765.     Attr:LONG                // First of LGO attributes
  766.  
  767. CONST   GRM_WHICHOBJECT         = BGUI_MB+87    /* V40 */
  768.  
  769. /* Locate object under these coords. */
  770. OBJECT GrMWhichObject
  771.     MethodID:LONG,   // GRM_WHICHOBJECT
  772.     CoordsX:INT,
  773.     CoordsY:INT
  774.  
  775. CONST   GRM_MAXDIMENSIONS       = BGUI_MB+88    /* 41 */
  776.  
  777. /* Ask an object it's maximum dimensions. */
  778. OBJECT GrMMaxDimensions
  779.     MethodID:LONG,
  780.     GInfo:PTR TO GadgetInfo,        // Can be NIL
  781.     RPort:PTR TO RastPort,
  782.     MaxSizeWidth:PTR TO LONG,
  783.     MaxSizeHeight:PTR TO LONG,
  784.     Flags:LONG
  785. /* No flags defined yet. */
  786.  
  787. /*****************************************************************************
  788.  *
  789.  *  "buttonclass" - BOOPSI button gadget.
  790.  *
  791.  *  Tags: 401 - 480         Methods: 121 - 160
  792.  *
  793.  *  GadTools style button gadget.
  794.  *
  795.  *  GA_Selected has been made gettable (OM_GET) for toggle-select
  796.  *  buttons. (ISGNU)
  797.  */
  798. CONST   BUTTON_UNUSED1          = BGUI_TB+401,   /* PRIVATE! */
  799.         BUTTON_UNUSED0          = BGUI_TB+402,   /* PRIVATE! */
  800.         BUTTON_Image            = BGUI_TB+403,   /* IS--U */
  801.         BUTTON_SelectedImage    = BGUI_TB+404,   /* IS--U */
  802.         BUTTON_EncloseImage     = BGUI_TB+405,   /* I---- */  /* V39 */
  803.         BUTTON_Vector           = BGUI_TB+406,   /* IS--U */  /* V41 */
  804.         BUTTON_SelectedVector   = BGUI_TB+407,   /* IS--U */  /* V41 */
  805.         BUTTON_SelectOnly       = BGUI_TB+408,   /* I---- */  /* V41.6 */
  806.  
  807. /*****************************************************************************
  808.  *
  809.  *  "checkboxclass" - BOOPSI checkbox gadget.
  810.  *
  811.  *  Tags: 481 - 560         Methods: 161 - 200
  812.  *
  813.  *  GadTools style checkbox gadget.
  814.  *
  815.  *  GA_Selected has been made gettable (OM_GET). (ISGNU)
  816.  */
  817.  
  818. /*****************************************************************************
  819.  *
  820.  *  "cycleclass" - BOOPSI cycle gadget.
  821.  *
  822.  *  Tags: 561 - 640         Methods: 201 - 240
  823.  *
  824.  *  GadTools style cycle gadget.
  825.  */
  826.         CYC_Labels              = BGUI_TB+561,   /* I---- */
  827.         CYC_Active              = BGUI_TB+562,   /* ISGNU */
  828.         CYC_PopUp               = BGUI_TB+563,   /* I---- */
  829.         CYC_PopActive           = BGUI_TB+564,   /* I---- */  /* V40 */
  830.  
  831. /*****************************************************************************
  832.  *
  833.  *  "infoclass" - BOOPSI information gadget.
  834.  *
  835.  *  Tags: 641 - 720         Methods: 241 - 280
  836.  *
  837.  *  Text gadget which supports different colors, text styles and
  838.  *  text positioning.
  839.  */
  840.         INFO_TextFormat         = BGUI_TB+641,   /* IS--U */
  841.         INFO_Args               = BGUI_TB+642,   /* IS--U */
  842.         INFO_MinLines           = BGUI_TB+643,   /* I---- */
  843.         INFO_FixTextWidth       = BGUI_TB+644,   /* I---- */
  844.         INFO_HorizOffset        = BGUI_TB+645,   /* I---- */
  845.         INFO_VertOffset         = BGUI_TB+646    /* I---- */
  846.  
  847. /* Command sequences. */
  848. #define ISEQ_B                  '\eb'  /* Bold          */
  849. #define ISEQ_I                  '\ei'  /* Italics       */
  850. #define ISEQ_U                  '\eu'  /* Underlined    */
  851. #define ISEQ_N                  '\en'  /* Normal        */
  852. #define ISEQ_C                  '\ec'  /* Centered      */
  853. #define ISEQ_R                  '\er'  /* Right         */
  854. #define ISEQ_L                  '\el'  /* Left          */
  855. #define ISEQ_TEXT               '\ed2' /* TEXTPEN       */
  856. #define ISEQ_SHINE              '\ed3' /* SHINEPEN      */
  857. #define ISEQ_SHADOW             '\ed4' /* SHADOWPEN     */
  858. #define ISEQ_FILL               '\ed5' /* FILLPEN       */
  859. #define ISEQ_FILLTEXT           '\ed6' /* FILLTEXTPEN   */
  860. #define ISEQ_HIGHLIGHT          '\ed8' /* HIGHLIGHTPEN  */
  861. #define ISEQ_FONT               '\21f\z\h[8]\22' /* Set Font */
  862. #define ISEQ_IMAGE              '\21i\z\h[8]\22' /* Draw Image */
  863.  
  864. /*****************************************************************************
  865.  *
  866.  *  "listviewclass" - BOOPSI listview gadget.
  867.  *
  868.  *  Tags: 721 - 800         Methods: 281 - 320
  869.  *
  870.  *  GadTools style listview gadget.
  871.  */
  872. CONST   LISTV_TAGSTART              = BGUI_TB+721,
  873.         LISTV_ResourceHook          = BGUI_TB+721,   /* IS--- */
  874.         LISTV_DisplayHook           = BGUI_TB+722,   /* IS--- */
  875.         LISTV_CompareHook           = BGUI_TB+723,   /* IS--- */
  876.         LISTV_Top                   = BGUI_TB+724,   /* ISG-U */
  877.         LISTV_ListFont              = BGUI_TB+725,   /* I-G-- */
  878.         LISTV_ReadOnly              = BGUI_TB+726,   /* I---- */
  879.         LISTV_MultiSelect           = BGUI_TB+727,   /* IS--U */
  880.         LISTV_EntryArray            = BGUI_TB+728,   /* I---- */
  881.         LISTV_Select                = BGUI_TB+729,   /* -S--U */
  882.         LISTV_MakeVisible           = BGUI_TB+730,   /* -S--U */
  883.         LISTV_Entry                 = BGUI_TB+731,   /* ---N- */
  884.         LISTV_SortEntryArray        = BGUI_TB+732,   /* I---- */
  885.         LISTV_EntryNumber           = BGUI_TB+733,   /* ---N- */
  886.         LISTV_TitleHook             = BGUI_TB+734,   /* I---- */
  887.         LISTV_LastClicked           = BGUI_TB+735,   /* --G-- */
  888.         LISTV_ThinFrames            = BGUI_TB+736,   /* I---- */
  889.         LISTV_LastClickedNum        = BGUI_TB+737,   /* --G-- */  /* V38 */
  890.         LISTV_NewPosition           = BGUI_TB+738,   /* ---N- */  /* V38 */
  891.         LISTV_NumEntries            = BGUI_TB+739,   /* --G-- */  /* V38 */
  892.         LISTV_MinEntriesShown       = BGUI_TB+740,   /* I---- */  /* V38 */
  893.         LISTV_SelectMulti           = BGUI_TB+741,   /* -S--U */  /* V39 */
  894.         LISTV_SelectNotVisible      = BGUI_TB+742,   /* -S--U */  /* V39 */
  895.         LISTV_SelectMultiNotVisible = BGUI_TB+743,   /* -S--U */  /* V39 */
  896.         LISTV_MultiSelectNoShift    = BGUI_TB+744,   /* IS--U */  /* V39 */
  897.         LISTV_Deselect              = BGUI_TB+745,   /* -S--U */  /* V39 */
  898.         LISTV_DropSpot              = BGUI_TB+746,   /* --G-- */  /* V40 */
  899.         LISTV_ShowDropSpot          = BGUI_TB+747,   /* IS--- */  /* V40 */
  900.         LISTV_ViewBounds            = BGUI_TB+748,   /* --G-- */  /* V40 */
  901.         LISTV_CustomDisable         = BGUI_TB+749,   /* ISG-- */  /* V40 */
  902.         LISTV_FilterHook            = BGUI_TB+750,   /* ISG-- */  /* V41 */
  903.         LISTV_Columns               = BGUI_TB+751,   /* I-G-U */  /* V41 */
  904.         LISTV_ColumnWeights         = BGUI_TB+752,   /* ISG-U */  /* V41 */
  905.         LISTV_DragColumns           = BGUI_TB+753,   /* ISG-U */  /* V41 */
  906.         LISTV_Titles                = BGUI_TB+754,   /* ISG-U */  /* V41 */
  907.         LISTV_PropObject            = BGUI_TB+755,   /* ISG-- */  /* V41 */
  908.         LISTV_PreClear              = BGUI_TB+756,   /* ISG-- */  /* V41 */
  909.         LISTV_LastColumn            = BGUI_TB+757,   /* --G-- */  /* V41 */
  910.         LISTV_LayoutHook            = BGUI_TB+758,   /* IS--U */  /* V41 */
  911.  
  912. /*
  913. **  LISTV_Select magic numbers.
  914. **/
  915.         LISTV_Select_First          = -1,                /* V38 */
  916.         LISTV_Select_Last           = -2,                /* V38 */
  917.         LISTV_Select_Next           = -3,                /* V38 */
  918.         LISTV_Select_Previous       = -4,                /* V38 */
  919.         LISTV_Select_Top            = -5,                /* V38 */
  920.         LISTV_Select_Page_Up        = -6,                /* V38 */
  921.         LISTV_Select_Page_Down      = -7,                /* V38 */
  922.         LISTV_Select_All            = -8                /* V39 */
  923.  
  924. /*
  925.  *  The LISTV_ResourceHook is called as follows:
  926.  *
  927.  *  rc = hookFunc( REG(A0) struct Hook      *hook,
  928.  *             REG(A2) Object           *lv_object,
  929.  *             REG(A1) struct lvResource    *message );
  930.  */
  931. OBJECT LVResource
  932.     Command:INT,
  933.     Entry:PTR TO LONG
  934.  
  935. /* LISTV_ResourceHook commands. */
  936. CONST   LVRC_MAKE       = 1   /* Build the entry. */
  937. CONST   LVRC_KILL       = 2   /* Kill the entry.  */
  938.  
  939. /*
  940.  *  The LISTV_DisplayHook and the LISTV_TitleHook are called as follows:
  941.  *
  942.  *  rc = hookFunc( REG(A0) struct Hook         *hook,
  943.  *             REG(A2) Object              *lv_object,
  944.  *             REG(A1) struct lvRender         *message );
  945.  */
  946. OBJECT LVRender
  947.     RPort:PTR TO RastPort,      /* RastPort to render in.  */
  948.     DrawInfo:PTR TO DrawInfo,   /* All you need to render. */
  949.     Bounds:Rectangle,           /* Bounds to render in.    */
  950.     Entry:PTR TO LONG,          /* Entry to render.    */
  951.     State:INT,                  /* See below.          */
  952.     Flags:INT,                  /* None defined yet.       */
  953.     Column:INT                  /* column to render         */
  954.  
  955. /* Rendering states. */
  956. ENUM    LVRS_NORMAL,
  957.         LVRS_SELECTED,
  958.         LVRS_NORMAL_DISABLED,
  959.         LVRS_SELECTED_DISABLED
  960.  
  961. /*
  962.  *  The LISTV_CompareHook is called as follows:
  963.  *
  964.  *  rc = hookFunc( REG(A0) struct Hook      *hook,
  965.  *             REG(A2) Object           *lv_object,
  966.  *             REG(A1) struct lvCompare         *message );
  967.  */
  968. OBJECT LVCompare
  969.     EntryA:PTR TO LONG,     /* First entry.  */
  970.     EntryB:PTR TO LONG      /* Second entry. */
  971.  
  972. OBJECT LVLayout
  973.     Id:INT,                  /* GA_ID of list.        */
  974.     Column:INT,              /* Column to layout.     */
  975.     ListWidth:INT,           /* Width of list.        */
  976.     EntryHeight:INT,         /* Height of entries.    */
  977.     Flags:PTR TO LONG,       /* Flag storage.         */
  978.     MinWidth:PTR TO INT,     /* Minimum column width. */
  979.     MaxWidth:PTR TO INT      /* Maximum column width. */
  980.  
  981. CONST   LVLF_PRECLEAR           = 1,
  982.         LVLF_DRAGGABLE          = 2,
  983.         LVLF_HIDDEN             = 4
  984.  
  985. /* New Methods. */
  986. CONST   LVM_ADDENTRIES          = BGUI_MB+281
  987.  
  988. /* Add listview entries. */
  989. OBJECT LVMAddEntries
  990.     MethodID:LONG,               /* LVM_ADDENTRIES  */
  991.     GInfo:PTR TO GadgetInfo,     /* GadgetInfo      */
  992.     Entries:PTR TO LONG,         /* Entries to add. */
  993.     How:LONG                     /* How to add it.  */
  994.  
  995. /* Where to add the entries. */
  996. ENUM    LVAP_HEAD      = 1,
  997.         LVAP_TAIL,
  998.         LVAP_SORTED
  999.  
  1000. CONST   LVM_ADDSINGLE           = BGUI_MB+282
  1001.  
  1002. /* Add a single entry. */
  1003. OBJECT LVMAddSingle
  1004.     MethodID:LONG,           /* LVM_ADDSINGLE */
  1005.     GInfo:PTR TO GadgetInfo, /* GadgetInfo    */
  1006.     Entry:PTR TO LONG,       /* Entry to add. */
  1007.     How:LONG,                /* See above.    */
  1008.     Flags:LONG               /* See below.    */
  1009.  
  1010. /* Flags. */
  1011. SET     LVASF_MAKEVISIBLE,  /* Make entry visible.          */
  1012.         LVASF_SELECT,       /* Select entry.            */
  1013.         LVASF_MULTISELECT,  /* Multi-select entry.      V40 */
  1014.         LVASF_NOT_VISIBLE   /* Do not make visible.         V40 */
  1015.  
  1016. /* Clear the entire list. ( Uses a lvmCommand structure as defined below.) */
  1017. CONST   LVM_CLEAR               = BGUI_MB+283,
  1018.  
  1019.         LVM_FIRSTENTRY          = BGUI_MB+284,
  1020.         LVM_LASTENTRY           = BGUI_MB+285,
  1021.         LVM_NEXTENTRY           = BGUI_MB+286,
  1022.         LVM_PREVENTRY           = BGUI_MB+287
  1023.  
  1024. /* Get an entry. */
  1025. OBJECT LVMGetEntry
  1026.     MethodID:LONG,           /* Any of the above. */
  1027.     Previous:PTR TO LONG,    /* Previous entry.   */
  1028.     Flags:LONG               /* See below.        */
  1029.  
  1030. SET     LVGEF_SELECTED     /* Get selected entries. */
  1031.  
  1032. CONST   LVM_REMENTRY            = BGUI_MB+288
  1033.  
  1034. /* Remove an entry. */
  1035. OBJECT LVMRemEntry
  1036.     MethodID:LONG,   /* LVM_REMENTRY      */
  1037.     GInfo:PTR TO GadgetInfo, /* GadgetInfo        */
  1038.     Entry:PTR TO LONG       /* Entry to remove.  */
  1039.  
  1040. CONST   LVM_REFRESH         = BGUI_MB+289,
  1041.         LVM_SORT            = BGUI_MB+290,
  1042.         LVM_LOCKLIST        = BGUI_MB+291,
  1043.         LVM_UNLOCKLIST      = BGUI_MB+292
  1044.  
  1045. /* Refresh/Sort list. */
  1046. OBJECT LVMCommand
  1047.     MethodID:LONG,           /* LVM_REFRESH       */
  1048.     GInfo:PTR TO GadgetInfo /* GadgetInfo        */
  1049.  
  1050. CONST   LVM_MOVE            = BGUI_MB+293 /* V38 */
  1051.  
  1052. /* Move an entry in the list. */
  1053. OBJECT LVMMove
  1054.     MethodID:LONG,           /* LVM_MOVE      */
  1055.     GInfo:PTR TO GadgetInfo, /* GadgetInfo        */
  1056.     Entry:PTR TO LONG,       /* Entry to move     */
  1057.     Direction:LONG,          /* See below         */
  1058.     NewPos:LONG              /* New position. V40 */
  1059.  
  1060. /* Move directions. */
  1061. ENUM    LVMOVE_UP,      /* Move entry up.        */
  1062.         LVMOVE_DOWN,    /* Move entry down.      */
  1063.         LVMOVE_TOP,     /* Move entry to the top.    */
  1064.         LVMOVE_BOTTOM,  /* Move entry to the bottom. */
  1065.         LVMOVE_NEWPOS   /* Move to new position. V40 */
  1066.  
  1067. CONST   LVM_REPLACE             = BGUI_MB+294 /* V39 */
  1068.  
  1069. /* Replace an entry by another. */
  1070. OBJECT LVMReplace
  1071.     MethodID:LONG,              /* LVM_REPLACE       */
  1072.     GInfo:PTR TO GadgetInfo,    /* GadgetInfo        */
  1073.     OldEntry:PTR TO LONG,       /* Entry to replace. */
  1074.     NewEntry:PTR TO LONG        /* New entry.        */
  1075.  
  1076. CONST   LVM_REDRAW              = BGUI_MB+295, /* V40 */
  1077.         LVM_INSERTENTRIES       = BGUI_MB+296 /* V40 */
  1078.  
  1079. /* Insert listview entries. */
  1080. OBJECT LVMInsertEntries
  1081.     MethodID:LONG,              /* LVM_INSERTENTRIES */
  1082.     GInfo:PTR TO GadgetInfo,    /* GadgetInfo        */
  1083.     Pos:LONG,                   /* Position.         */
  1084.     Entries:PTR TO LONG         /* Entries to insert.*/
  1085.  
  1086. CONST   LVM_INSERTSINGLE        = BGUI_MB+297 /* V40 */
  1087.  
  1088. /* Insert a single entry. */
  1089. OBJECT LVMInsertSingle
  1090.     MethodID:LONG,              /* LVM_INSERTSINGLE  */
  1091.     GInfo:PTR TO GadgetInfo,    /* GadgetInfo        */
  1092.     Pos:LONG,                   /* Position.         */
  1093.     Entry:PTR TO LONG,          /* Entry to insert.  */
  1094.     Flags:LONG                  /* See LVM_ADDSINGLE */
  1095.  
  1096. CONST   LVM_REMSELECTED         = BGUI_MB+298,   /* V40 */
  1097.         LVM_REDRAWSINGLE        = BGUI_MB+299    /* V41.7 */
  1098.  
  1099. /* Redraw a single entry or column. */
  1100. OBJECT LVMRedrawSingle
  1101.     MethodID:LONG,               /* LVM_REDRAWSINGLE  */
  1102.     GInfo:PTR TO GadgetInfo,     /* GadgetInfo.       */
  1103.     Entry:PTR TO LONG,           /* Entry to redraw.  */
  1104.     Column:LONG,                 /* Column to redraw. */
  1105.     Flags:LONG                   /* See below.        */
  1106.  
  1107. CONST   LVRF_ALL_COLUMNS        = 1,
  1108.         LVRF_ALL_ENTRIES        = 2,
  1109.         LVM_FILTER              = BGUI_MB+299    /* V41 */
  1110.  
  1111. /* Filter the list entries. */
  1112. OBJECT LVMFilter
  1113.     MethodID:LONG,
  1114.     Flags:LONG
  1115.  
  1116. CONST   LVFF_ALL                = 1,
  1117.         LVFF_NOT                = 2,
  1118.         LVFF_SORTED             = 4,
  1119.         LVFF_NONE               = 3,
  1120.  
  1121.         LVM_FILTERSWAP          = BGUI_MB+300,
  1122.  
  1123. /*****************************************************************************
  1124.  *
  1125.  *  "progressclass" - BOOPSI progression gadget.
  1126.  *
  1127.  *  Tags: 801 - 880         Methods: 321 - 360
  1128.  *
  1129.  *  Progression indicator fuel guage.
  1130.  */
  1131.         PROGRESS_Min            = BGUI_TB+801,   /* IS--- */
  1132.         PROGRESS_Max            = BGUI_TB+802,   /* IS--- */
  1133.         PROGRESS_Done           = BGUI_TB+803,   /* ISGNU */
  1134.         PROGRESS_Vertical       = BGUI_TB+804,   /* I---- */
  1135.         PROGRESS_Divisor        = BGUI_TB+805,   /* I---- */
  1136.         PROGRESS_FormatString   = BGUI_TB+806,   /* I---- */  /* V40 */
  1137.  
  1138. /*****************************************************************************
  1139.  *
  1140.  *  "propclass" - BOOPSI proportional gadget.
  1141.  *
  1142.  *  Tags: 881 - 960         Methods: 361 - 400
  1143.  *
  1144.  *  GadTools style scroller gadget.
  1145.  */
  1146.         PGA_Arrows              = BGUI_TB+881,   /* I---- */
  1147.         PGA_ArrowSize           = BGUI_TB+882,   /* I---- */
  1148.         PGA_Reserved            = BGUI_TB+883,   /* PRIVATE! */
  1149.         PGA_ThinFrame           = BGUI_TB+884,   /* I---- */
  1150.         PGA_XenFrame            = BGUI_TB+885,   /* I---- */
  1151.         PGA_NoFrame             = BGUI_TB+886,   /* I---- */  /* V40 */
  1152.  
  1153. /*****************************************************************************
  1154.  *
  1155.  *  "stringclass" - BOOPSI string gadget.
  1156.  *
  1157.  *  Tags: 961 - 1040        Methods: 401 - 440
  1158.  *
  1159.  *  GadTools style string/integer gadget.
  1160.  */
  1161.         STRINGA_UNUSED1         = BGUI_TB+961,   /* PRIVATE! */
  1162.         STRINGA_UNUSED2         = BGUI_TB+962,   /* PRIVATE! */
  1163.         STRINGA_MinCharsVisible = BGUI_TB+963,   /* I---- */  /* V39 */
  1164.         STRINGA_IntegerMin      = BGUI_TB+964,   /* IS--U */  /* V39 */
  1165.         STRINGA_IntegerMax      = BGUI_TB+965,   /* IS--U */  /* V39 */
  1166.         STRINGA_StringInfo      = BGUI_TB+966,   /* --G-- */  /* V40 */
  1167.  
  1168.         SM_FORMAT_STRING        = BGUI_MB+401    /* V39 */
  1169.  
  1170. /* Format the string contents. */
  1171. OBJECT SMFormatString
  1172.     MethodID:LONG,               /* SM_FORMAT_STRING    */
  1173.     GInfo:PTR TO GadgetInfo,     /* GadgetInfo          */
  1174.     FStr:PTR TO LONG,            /* Format string       */
  1175.     Arg1:LONG                    /* Format arg          */
  1176.  
  1177. /*****************************************************************************
  1178.  *
  1179.  *  "viewclass" - BOOPSI view object.
  1180.  *
  1181.  *  Tags: 1041 - 1120       Methods: 441 - 480
  1182.  *
  1183.  *  Gadget to view a clipped portion of another object.
  1184.  */
  1185. CONST   VIEW_X                  = BGUI_TB+1041,  /* ISG-U */
  1186.         VIEW_Y                  = BGUI_TB+1042,  /* ISG-U */
  1187.         VIEW_MinWidth           = BGUI_TB+1043,  /* ISG-- */
  1188.         VIEW_MinHeight          = BGUI_TB+1044,  /* ISG-- */
  1189.         VIEW_ScaleMinWidth      = BGUI_TB+1045,  /* ISG-- */
  1190.         VIEW_ScaleMinHeight     = BGUI_TB+1046,  /* ISG-- */
  1191.         VIEW_ScaleWidth         = BGUI_TB+1047,  /* ISG-- */
  1192.         VIEW_ScaleHeight        = BGUI_TB+1048,  /* ISG-- */
  1193.         VIEW_VScroller          = BGUI_TB+1049,  /* IS--- */
  1194.         VIEW_HScroller          = BGUI_TB+1050,  /* IS--- */
  1195.         VIEW_AbsoluteX          = BGUI_TB+1051,  /* --G-- */
  1196.         VIEW_AbsoluteY          = BGUI_TB+1052,  /* --G-- */
  1197.         VIEW_Object             = BGUI_TB+1053,  /* ISG-U */
  1198.         VIEW_NoDisposeObject    = BGUI_TB+1054   /* ISG-- */
  1199.  
  1200. /*****************************************************************************
  1201.  *
  1202.  *  "pageclass" - BOOPSI paging gadget.
  1203.  *
  1204.  *  Tags: 1121 - 1200       Methods: 481 - 520
  1205.  *
  1206.  *  Gadget to handle pages of gadgets.
  1207.  */
  1208. CONST   PAGE_Active             = BGUI_TB+1121,  /* ISGNU */
  1209.         PAGE_Member             = BGUI_TB+1122,  /* I---- */
  1210.         PAGE_NoBufferRP         = BGUI_TB+1123,  /* I---- */
  1211.         PAGE_Inverted           = BGUI_TB+1124,  /* I---- */
  1212.  
  1213. /*****************************************************************************
  1214.  *
  1215.  *  "mxclass" - BOOPSI mx gadget.
  1216.  *
  1217.  *  Tags: 1201 - 1280       Methods: 521 - 560
  1218.  *
  1219.  *  GadTools style mx gadget.
  1220.  */
  1221.         MX_Labels               = BGUI_TB+1201,  /* I---- */
  1222.         MX_Active               = BGUI_TB+1202,  /* ISGNU */
  1223.         MX_LabelPlace           = BGUI_TB+1203,  /* I---- */
  1224.         MX_DisableButton        = BGUI_TB+1204,  /* IS--U */
  1225.         MX_EnableButton         = BGUI_TB+1205,  /* IS--U */
  1226.         MX_TabsObject           = BGUI_TB+1206,  /* I---- */
  1227.         MX_TabsTextAttr         = BGUI_TB+1207,  /* I---- */
  1228.         MX_TabsUpsideDown       = BGUI_TB+1208,  /* I---- */  /* V40 */
  1229.         MX_TabsBackFill         = BGUI_TB+1209,  /* I---- */  /* V40 */
  1230.         MX_TabsBackPen          = BGUI_TB+1210,  /* I---- */  /* V40 */
  1231.         MX_TabsBackDriPen       = BGUI_TB+1211,  /* I---- */  /* V40 */
  1232.         MX_LabelsID             = BGUI_TB+1212,  /* I---- */  /* V41 */
  1233.         MX_Spacing              = BGUI_TB+1213,  /* I---- */  /* V41 */
  1234.         MX_Type                 = BGUI_TB+1214,  /* I---- */  /* V41.8 */
  1235.         MX_TabsBackFillHook     = BGUI_TB+1215,  /* I---- */
  1236.         MX_TabsFillPattern      = BGUI_TB+1216,  /* i---- */
  1237.         MX_RotateLeft           = BGUI_TB+1217,  /* I---- */  /* RESERVED */
  1238.         MX_RotateRight          = BGUI_TB+1218,  /* I---- */  /* RESERVED */
  1239.  
  1240.         MXTYPE_RADIOBUTTON      = 0,
  1241.         MXTYPE_TAB_TOP          = 1,
  1242.         MXTYPE_TAB_BOTTOM       = 2,
  1243.         MXTYPE_TAB_LEFT         = 3,
  1244.         MXTYPE_TAB_RIGHT        = 4,
  1245.  
  1246. /*****************************************************************************
  1247.  *
  1248.  *  "sliderclass" - BOOPSI slider gadget.
  1249.  *
  1250.  *  Tags: 1281 - 1360       Methods: 561 - 600
  1251.  *
  1252.  *  GadTools style slider gadget.
  1253.  */
  1254.         SLIDER_Min              = BGUI_TB+1281,  /* IS--U */
  1255.         SLIDER_Max              = BGUI_TB+1282,  /* IS--U */
  1256.         SLIDER_Level            = BGUI_TB+1283,  /* ISGNU */
  1257.         SLIDER_ThinFrame        = BGUI_TB+1284,  /* I---- */
  1258.         SLIDER_XenFrame         = BGUI_TB+1285,  /* I---- */
  1259.         SLIDER_NoFrame          = BGUI_TB+1286,  /* I---- */  /* V40 */
  1260.  
  1261. /*****************************************************************************
  1262.  *
  1263.  *  "indicatorclass" - BOOPSI indicator gadget.
  1264.  *
  1265.  *  Tags: 1361 - 1440       Methods: ??
  1266.  *
  1267.  *  Textual level indicator gadget.
  1268.  */
  1269.         INDIC_Min               = BGUI_TB+1361,  /* I---- */
  1270.         INDIC_Max               = BGUI_TB+1362,  /* I---- */
  1271.         INDIC_Level             = BGUI_TB+1363,  /* IS--U */
  1272.         INDIC_FormatString      = BGUI_TB+1364,  /* I---- */
  1273.         INDIC_Justification     = BGUI_TB+1365,  /* I---- */
  1274.  
  1275. /* Justification */
  1276.         IDJ_LEFT                = 0,
  1277.         IDJ_CENTER              = 1,
  1278.         IDJ_RIGHT               = 2,
  1279.  
  1280. /*****************************************************************************
  1281.  *
  1282.  *  "externalclass" - BGUI external class interface.
  1283.  *
  1284.  *  Tags: 1441 - 1500       Methods: ??
  1285.  */
  1286.         EXT_Class               = BGUI_TB+1441,  /* I---- */
  1287.         EXT_ClassID             = BGUI_TB+1442,  /* I---- */
  1288.         EXT_MinWidth            = BGUI_TB+1443,  /* I---- */
  1289.         EXT_MinHeight           = BGUI_TB+1444,  /* I---- */
  1290.         EXT_TrackAttr           = BGUI_TB+1445,  /* I---- */
  1291.         EXT_Object              = BGUI_TB+1446,  /* --G-- */
  1292.         EXT_NoRebuild           = BGUI_TB+1447,  /* I---- */
  1293.  
  1294. /*****************************************************************************
  1295.  *
  1296.  *  "separatorclass" - BOOPSI separator class.
  1297.  *
  1298.  *  Tags: 1501 - 1580       Methods: ??
  1299.  */
  1300.         SEP_Horiz               = BGUI_TB+1501,  /* I---- */
  1301.         SEP_Title               = BGUI_TB+1502,  /* I---- */
  1302.         SEP_Thin                = BGUI_TB+1503,  /* I---- */
  1303.         SEP_Highlight           = BGUI_TB+1504,  /* I---- */
  1304.         SEP_CenterTitle         = BGUI_TB+1505,  /* I---- */
  1305.         SEP_Recessed            = BGUI_TB+1506,  /* I---- */  /* V39 */
  1306.         SEP_TitleLeft           = BGUI_TB+1507,  /* I---- */  /* V40 */
  1307.         SEP_TitleRight          = BGUI_TB+1508,  /* I---- */  /* V40 */
  1308.         SEP_TitleID             = BGUI_TB+1509,  /* IS--- */  /* V41.8 */
  1309.  
  1310. /* BGUI_TB+1581 through BGUI_TB+1760 reserved. */
  1311.  
  1312. /*****************************************************************************
  1313.  *
  1314.  *  "windowclass" - BOOPSI window class.
  1315.  *
  1316.  *  Tags: 1761 - 1860       Methods: 601 - 660
  1317.  *
  1318.  *  This class creates and maintains an intuition window.
  1319.  */
  1320.         WINDOW_Position         = BGUI_TB+1761,  /* I---- */
  1321.         WINDOW_ScaleWidth       = BGUI_TB+1762,  /* I---- */
  1322.         WINDOW_ScaleHeight      = BGUI_TB+1763,  /* I---- */
  1323.         WINDOW_LockWidth        = BGUI_TB+1764,  /* I---- */
  1324.         WINDOW_LockHeight       = BGUI_TB+1765,  /* I---- */
  1325.         WINDOW_PosRelBox        = BGUI_TB+1766,  /* I---- */
  1326.         WINDOW_Bounds           = BGUI_TB+1767,  /* ISG-- */
  1327.         WINDOW_DragBar          = BGUI_TB+1771,  /* I---- */
  1328.         WINDOW_SizeGadget       = BGUI_TB+1772,  /* I---- */
  1329.         WINDOW_CloseGadget      = BGUI_TB+1773,  /* I---- */
  1330.         WINDOW_DepthGadget      = BGUI_TB+1774,  /* I---- */
  1331.         WINDOW_SizeBottom       = BGUI_TB+1775,  /* I---- */
  1332.         WINDOW_SizeRight        = BGUI_TB+1776,  /* I---- */
  1333.         WINDOW_Activate         = BGUI_TB+1777,  /* I---- */
  1334.         WINDOW_RMBTrap          = BGUI_TB+1778,  /* I---- */
  1335.         WINDOW_SmartRefresh     = BGUI_TB+1779,  /* I---- */
  1336.         WINDOW_ReportMouse      = BGUI_TB+1780,  /* I---- */
  1337.         WINDOW_Borderless       = BGUI_TB+1781,  /* I---- */  /* V39 */
  1338.         WINDOW_Backdrop         = BGUI_TB+1782,  /* I---- */  /* V39 */
  1339.         WINDOW_ShowTitle        = BGUI_TB+1783,  /* I---- */  /* V39 */
  1340.         WINDOW_IDCMP            = BGUI_TB+1791,  /* I---- */
  1341.         WINDOW_SharedPort       = BGUI_TB+1792,  /* IS--- */
  1342.         WINDOW_Title            = BGUI_TB+1793,  /* IS--U */
  1343.         WINDOW_ScreenTitle      = BGUI_TB+1794,  /* IS--U */
  1344.         WINDOW_MenuStrip        = BGUI_TB+1795,  /* I-G-- */
  1345.         WINDOW_MasterGroup      = BGUI_TB+1796,  /* I---- */
  1346.         WINDOW_Screen           = BGUI_TB+1797,  /* IS--- */
  1347.         WINDOW_PubScreenName    = BGUI_TB+1798,  /* IS--- */
  1348.         WINDOW_UserPort         = BGUI_TB+1799,  /* --G-- */
  1349.         WINDOW_SigMask          = BGUI_TB+1800,  /* --G-- */
  1350.         WINDOW_IDCMPHook        = BGUI_TB+1801,  /* I---- */
  1351.         WINDOW_VerifyHook       = BGUI_TB+1802,  /* I---- */
  1352.         WINDOW_IDCMPHookBits    = BGUI_TB+1803,  /* I---- */
  1353.         WINDOW_VerifyHookBits   = BGUI_TB+1804,  /* I---- */
  1354.         WINDOW_Font             = BGUI_TB+1805,  /* I---- */
  1355.         WINDOW_FallBackFont     = BGUI_TB+1806,  /* I---- */
  1356.         WINDOW_HelpFile         = BGUI_TB+1807,  /* IS--- */
  1357.         WINDOW_HelpNode         = BGUI_TB+1808,  /* IS--- */
  1358.         WINDOW_HelpLine         = BGUI_TB+1809,  /* IS--- */
  1359.         WINDOW_AppWindow        = BGUI_TB+1810,  /* I---- */
  1360.         WINDOW_AppMask          = BGUI_TB+1811,  /* --G-- */
  1361.         WINDOW_UniqueID         = BGUI_TB+1812,  /* I---- */
  1362.         WINDOW_Window           = BGUI_TB+1813,  /* --G-- */
  1363.         WINDOW_HelpText         = BGUI_TB+1814,  /* IS--- */
  1364.         WINDOW_NoBufferRP       = BGUI_TB+1815,  /* I---- */
  1365.         WINDOW_AutoAspect       = BGUI_TB+1816,  /* I---- */
  1366.         WINDOW_PubScreen        = BGUI_TB+1817,  /* IS--- */  /* V39 */
  1367.         WINDOW_CloseOnEsc       = BGUI_TB+1818,  /* IS--- */  /* V39 */
  1368.         WINDOW_ActNext          = BGUI_TB+1819,  /* ----- */  /* V39 */
  1369.         WINDOW_ActPrev          = BGUI_TB+1820,  /* ----- */  /* V39 */
  1370.         WINDOW_NoVerify         = BGUI_TB+1821,  /* -S--- */  /* V39 */
  1371.         WINDOW_MenuFont         = BGUI_TB+1822,  /* IS--- */  /* V40 */
  1372.         WINDOW_ToolTicks        = BGUI_TB+1823,  /* ISG-U */  /* V40 */
  1373.         WINDOW_LBorderGroup     = BGUI_TB+1824,  /* I---- */  /* V40 */
  1374.         WINDOW_TBorderGroup     = BGUI_TB+1825,  /* I---- */  /* V40 */
  1375.         WINDOW_RBorderGroup     = BGUI_TB+1826,  /* I---- */  /* V40 */
  1376.         WINDOW_BBorderGroup     = BGUI_TB+1827,  /* I---- */  /* V40 */
  1377.         WINDOW_TitleZip         = BGUI_TB+1828,  /* I---- */  /* V40 */
  1378.         WINDOW_AutoKeyLabel     = BGUI_TB+1829,  /* I---- */  /* V41 */
  1379.         WINDOW_TitleID          = BGUI_TB+1830,  /* ISG-- */  /* V41 */
  1380.         WINDOW_ScreenTitleID    = BGUI_TB+1831,  /* ISG-- */  /* V41 */
  1381.         WINDOW_HelpTextID       = BGUI_TB+1832,  /* ISG-- */  /* V41 */
  1382.         WINDOW_Locale           = BGUI_TB+1833,  /* IS--- */  /* V41 */
  1383.         WINDOW_Catalog          = BGUI_TB+1834,  /* IS--- */  /* V41 */
  1384.         WINDOW_PreBufferRP      = BGUI_TB+1835,  /* IS--- */  /* V41.8 */
  1385.  
  1386. /* Possible window positions. */
  1387.         POS_CENTERSCREEN        = 0,             /* Center on the screen             */
  1388.         POS_CENTERMOUSE         = 1,             /* Center under the mouse       */
  1389.         POS_TOPLEFT             = 2,             /* Top-left of the screen       */
  1390.  
  1391. /* New methods */
  1392.         WM_OPEN                 = BGUI_MB+601,   /* Open the window          */
  1393.         WM_CLOSE                = BGUI_MB+602,   /* Close the window         */
  1394.         WM_SLEEP                = BGUI_MB+603,   /* Put the window to sleep      */
  1395.         WM_WAKEUP               = BGUI_MB+604,   /* Wake the window up           */
  1396.         WM_HANDLEIDCMP          = BGUI_MB+605,   /* Call the IDCMP handler       */
  1397.  
  1398. /* Pre-defined WM_HANDLEIDCMP return codes. */
  1399.         WMHI_CLOSEWINDOW        = $10000,        /* The close gadget was clicked     */
  1400.         WMHI_NOMORE             = $20000,        /* No more messages         */
  1401.         WMHI_INACTIVE           = $30000,        /* The window was de-activated      */
  1402.         WMHI_ACTIVE             = $40000,        /* The window was activated     */
  1403.         WMHI_MENUHELP           = $50000,        /* A menuhelp message was sent.     */
  1404.         WMHI_IGNORE             = -1,            /* Like it say's: ignore            */
  1405.         WMHI_RMB                = $1000000,      /* The object was activated by RMB */
  1406.         WMHI_MMB                = $2000000,      /* The object was activated by MMB */
  1407.  
  1408.         WM_GADGETKEY            = BGUI_MB+606
  1409.  
  1410. /* Add a hotkey to a gadget. */
  1411. OBJECT WMGadgetKey
  1412.     MethodID:LONG,                   /* WM_GADGETKEY          */
  1413.     Requester:PTR TO Requester,      /* When used in a requester      */
  1414.     Object:PTR TO _Object,           /* Object to activate        */
  1415.     Key:PTR TO LONG                  /* Key that triggers activ.      */
  1416.  
  1417. CONST   WM_KEYACTIVE            = BGUI_MB+607,
  1418.         WM_KEYINPUT             = BGUI_MB+608
  1419.  
  1420. /* Send with the WM_KEYACTIVE and WM_KEYINPUT methods. */
  1421. OBJECT WMKeyInput
  1422.     MethodID:LONG,               /* WM_KEYACTIVE/WM_KEYINPUT        */
  1423.     GInfo:PTR TO GadgetInfo,     /* GadgetInfo              */
  1424.     IEvent:PTR TO InputEvent,    /* Input event                     */
  1425.     Id:PTR TO LONG,              /* Storage for the object ID       */
  1426.     Key:PTR TO CHAR              /* Key that triggered activation.  */
  1427.  
  1428. /* Possible WM_KEYACTIVE and WM_KEYINPUT return codes. */
  1429. CONST   WMKF_MEACTIVE   = 0          /* Object went active.             */
  1430. SET     WMKF_CANCEL,                 /* Key activation canceled.        */
  1431.         WMKF_VERIFY,                 /* Key activation confirmed        */
  1432.         WMKF_ACTIVATE                /* ActivateGadget() object     */
  1433.  
  1434. CONST   WM_KEYINACTIVE          = BGUI_MB+609
  1435.  
  1436. /* De-activate a key session. */
  1437. OBJECT WMKeyInactive
  1438.     MethodID:LONG,            /* WM_KEYINACTIVE           */
  1439.     GInfo:PTR TO GadgetInfo   /* GadgetInfo               */
  1440.  
  1441. CONST   WM_DISABLEMENU          = BGUI_MB+610,
  1442.         WM_CHECKITEM            = BGUI_MB+611
  1443.  
  1444. /* Disable/Enable a menu or Set/Clear a checkit item. */
  1445. OBJECT WMMenuAction
  1446.     MethodID:LONG,    /* WM_DISABLEMENU/WM_CHECKITEM      */
  1447.     MenuID:LONG,      /* Menu it's ID                     */
  1448.     Set:LONG          /* TRUE = set, FALSE = clear        */
  1449.  
  1450. CONST   WM_MENUDISABLED         = BGUI_MB+612
  1451. CONST   WM_ITEMCHECKED          = BGUI_MB+613
  1452.  
  1453. OBJECT WMMenuQuery
  1454.     MethodID:LONG,    /* WM_MENUDISABLED/WM_ITEMCHECKED   */
  1455.     MenuID:LONG      /* Menu it's ID                     */
  1456.  
  1457. CONST   WM_TABCYCLE_ORDER       = BGUI_MB+614
  1458.  
  1459. /* Set the tab-cycling order. */
  1460. OBJECT WMTabCycleOrder
  1461.     MethodID:LONG,    /* WM_TABCYCLE_ORDER            */
  1462.     Object1:PTR TO _Object
  1463.  
  1464. /* Obtain the app message. */
  1465. CONST   WM_GETAPPMSG            = BGUI_MB+615
  1466. CONST   WM_ADDUPDATE            = BGUI_MB+616
  1467.  
  1468. /* Add object to the update notification list. */
  1469. OBJECT WMAddUpdate
  1470.     MethodID:LONG,                /* WM_ADDUPDATE             */
  1471.     SourceID:LONG,                /* ID of source object.     */
  1472.     Target:PTR TO _Object,        /* Target object.       */
  1473.     MapList:PTR TO TagItem        /* Attribute map-list.      */
  1474.  
  1475. CONST   WM_REPORT_ID            = BGUI_MB+617 /* V38 */
  1476.  
  1477. /* Report a return code from a IDCMP/Verify hook. */
  1478. OBJECT WMReportID
  1479.     MethodID:LONG,                /* WM_REPORT_ID             */
  1480.     Id:LONG,                      /* ID to report.        */
  1481.     Flags:LONG,                   /* See below.           */
  1482.     SigTask:PTR TO ETask          /* Task to signal.  V40 */
  1483.  
  1484. /* Flags */
  1485. SET     WMRIF_DOUBLE_CLICK,  /* Simulate double-click.   */
  1486.         WMRIF_TASK           /* Task to signal valid. V40 */
  1487.  
  1488. /* Get the window which signalled us. */
  1489. CONST   WM_GET_SIGNAL_WINDOW    = BGUI_MB+618 /* V39 */
  1490. CONST   WM_REMOVE_OBJECT        = BGUI_MB+619 /* V40 */
  1491.  
  1492. /* Remove an object from the window key and/or tabcycle list. */
  1493. OBJECT WMRemoveObject
  1494.     MethodID:LONG,                /* WM_REMOVE_OBJECT     */
  1495.     Object:PTR TO _Object,        /* Object to remove.        */
  1496.     Flags:LONG                    /* See below.           */
  1497.  
  1498. /* Flags */
  1499. SET     WMROF_KEY_LIST,  /* Remove from key-list.    */
  1500.         WMROF_CYCLE_LIST /* Remove from cycle list.  */
  1501.  
  1502.  
  1503. CONST   WM_WHICHOBJECT          = BGUI_MB+620, /* V40 */
  1504.  
  1505. /*****************************************************************************
  1506.  *
  1507.  *  "commodityclass" - BOOPSI commodity class.
  1508.  *
  1509.  *  Tags: 1861 - 1940       Methods: 661 - 700
  1510.  */
  1511.         COMM_Name               = BGUI_TB+1861,  /* I---- */
  1512.         COMM_Title              = BGUI_TB+1862,  /* I---- */
  1513.         COMM_Description        = BGUI_TB+1863,  /* I---- */
  1514.         COMM_Unique             = BGUI_TB+1864,  /* I---- */
  1515.         COMM_Notify             = BGUI_TB+1865,  /* I---- */
  1516.         COMM_ShowHide           = BGUI_TB+1866,  /* I---- */
  1517.         COMM_Priority           = BGUI_TB+1867,  /* I---- */
  1518.         COMM_SigMask            = BGUI_TB+1868,  /* --G-- */
  1519.         COMM_ErrorCode          = BGUI_TB+1869,  /* --G-- */
  1520.  
  1521. /* New Methods. */
  1522.         CM_ADDHOTKEY            = BGUI_MB+661
  1523.  
  1524. /* Add a hot-key to the broker. */
  1525. OBJECT CMAddHotKey
  1526.     MethodID:LONG,           /* CM_ADDHOTKEY             */
  1527.     InputDescription:PTR TO LONG,    /* Key input description.   */
  1528.     KeyID:LONG,                      /* Key command ID.      */
  1529.     Flags:LONG                      /* See below.           */
  1530.  
  1531. /* Flags. */
  1532. SET     CAHF_DISABLED       /* The key is added but won't work.         */
  1533.  
  1534. CONST   CM_REMHOTKEY            = BGUI_MB+662, /* Remove a key.      */
  1535.         CM_DISABLEHOTKEY        = BGUI_MB+663, /* Disable a key.     */
  1536.         CM_ENABLEHOTKEY         = BGUI_MB+664 /* Enable a key.      */
  1537.  
  1538. /* Do a key command. */
  1539. OBJECT CMDoKeyCommand
  1540.     MethodID:LONG,   /* See above.               */
  1541.     KeyID:LONG      /* ID of the key.           */
  1542.  
  1543. CONST   CM_ENABLEBROKER         = BGUI_MB+665, /* Enable broker.     */
  1544.         CM_DISABLEBROKER        = BGUI_MB+666, /* Disable broker.    */
  1545.         CM_MSGINFO              = BGUI_MB+667
  1546.  
  1547. /* Obtain info from a CxMsg. */
  1548. OBJECT cmMsgInfo
  1549.     MethodID:LONG,           /* CM_MSGINFO               */
  1550.     InfoType:PTR TO LONG,    /* Storage for CxMsgType() result.  */
  1551.     InfoID:PTR TO LONG,      /* Storage for CxMsgID() result.    */
  1552.     InfoData:PTR TO LONG     /* Storage for CxMsgData() result.  */
  1553.  
  1554. /* Possible CM_MSGINFO return codes. */
  1555. CONST   CMMI_NOMORE             = -1,   /* No more messages.            */
  1556.         CMMI_KILL               = $10000, /* Remove yourself.     V40     */
  1557.         CMMI_DISABLE            = $20000, /* You have been disabled.  V40     */
  1558.         CMMI_ENABLE             = $30000, /* You have been enabled.   V40     */
  1559.         CMMI_UNIQUE             = $40000, /* Unique violation ocured. V40     */
  1560.         CMMI_APPEAR             = $50000, /* Show yourself.       V40     */
  1561.         CMMI_DISAPPEAR          = $60000 /* Hide yourself.       V40     */
  1562.  
  1563. /*
  1564.  *  CM_ADDHOTKEY error codes obtainable using
  1565.  *  the COMM_ErrorCode attribute.
  1566.  */
  1567. ENUM    CMERR_OK,               /* OK. No problems.         */
  1568.         CMERR_NO_MEMORY,        /* Out of memory.           */
  1569.         CMERR_KEYID_IN_USE,     /* Key ID already used.             */
  1570.         CMERR_KEY_CREATION,     /* Key creation failure.        */
  1571.         CMERR_CXOBJERROR        /* CxObjError() reported failure.   */
  1572.  
  1573. /*****************************************************************************
  1574.  *
  1575.  *  "aslreqclass" - BOOPSI Asl filerequester classes (file, font, screen)
  1576.  *
  1577.  *  Tags: 1941 - 2020       Methods: 701 - 740
  1578.  */
  1579. CONST   FILEREQ_Drawer          = BGUI_TB+1941,  /* --G-- */
  1580.         FILEREQ_File            = BGUI_TB+1942,  /* --G-- */
  1581.         FILEREQ_Pattern         = BGUI_TB+1943,  /* --G-- */
  1582.         FILEREQ_Path            = BGUI_TB+1944,  /* --G-- */
  1583.         ASLREQ_Left             = BGUI_TB+1945,  /* --G-- */
  1584.         ASLREQ_Top              = BGUI_TB+1946,  /* --G-- */
  1585.         ASLREQ_Width            = BGUI_TB+1947,  /* --G-- */
  1586.         ASLREQ_Height           = BGUI_TB+1948,  /* --G-- */
  1587.         FILEREQ_MultiHook       = BGUI_TB+1949,  /* IS--- */  /* V40 */
  1588.         ASLREQ_Type             = BGUI_TB+1950,  /* I-G-- */  /* V41 */
  1589.         ASLREQ_Requester        = BGUI_TB+1951,  /* --G-- */  /* V41 */
  1590.         ASLREQ_Bounds           = BGUI_TB+1952,  /* IS--- */  /* V41.8 */
  1591.  
  1592.         FONTREQ_TextAttr        = BGUI_TB+1980,  /* ISG-- */  /* V41 */
  1593.         FONTREQ_Name            = BGUI_TB+1981,  /* ISG-- */  /* V41 */
  1594.         FONTREQ_Size            = BGUI_TB+1982,  /* ISG-- */  /* V41 */
  1595.         FONTREQ_Style           = BGUI_TB+1983,  /* ISG-- */  /* V41 */
  1596.         FONTREQ_Flags           = BGUI_TB+1984,  /* ISG-- */  /* V41 */
  1597.         FONTREQ_FrontPen        = BGUI_TB+1985,  /* ISG-- */  /* V41 */
  1598.         FONTREQ_BackPen         = BGUI_TB+1986,  /* ISG-- */  /* V41 */
  1599.         FONTREQ_DrawMode        = BGUI_TB+1987,  /* ISG-- */  /* V41 */
  1600.  
  1601.         SCREENREQ_DisplayID     = BGUI_TB+1990,  /* ISG-- */  /* V41 */
  1602.         SCREENREQ_DisplayWidth  = BGUI_TB+1991,  /* ISG-- */  /* V41 */
  1603.         SCREENREQ_DisplayHeight = BGUI_TB+1992,  /* ISG-- */  /* V41 */
  1604.         SCREENREQ_DisplayDepth  = BGUI_TB+1993,  /* ISG-- */  /* V41 */
  1605.         SCREENREQ_OverscanType  = BGUI_TB+1994,  /* ISG-- */  /* V41 */
  1606.         SCREENREQ_AutoScroll    = BGUI_TB+1995   /* ISG-- */  /* V41 */
  1607.  
  1608. /*
  1609.  *  In addition to the above defined attributes are all
  1610.  *  ASL filerequester attributes ISG-U.
  1611.  */
  1612.  
  1613. /*
  1614.  *  Error codes which the SetAttrs() and DoMethod()
  1615.  *  call's can return.
  1616.  */
  1617. ENUM    ASLREQ_OK,                 /* OK. No problems.         */
  1618.         ASLREQ_CANCEL,             /* The requester was cancelled.     */
  1619.         ASLREQ_ERROR_NO_MEM,       /* Out of memory.           */
  1620.         ASLREQ_ERROR_NO_FREQ       /* Unable to allocate a requester.  */
  1621.  
  1622. /* New Methods */
  1623. CONST   ASLM_DOREQUEST          = BGUI_MB+701,   /* Show Requester.  */
  1624.  
  1625. /*
  1626.  * The following three methods are only needed by class implementors.
  1627.  */
  1628.         ASLM_ALLOCREQUEST       = BGUI_MB+702,   /* AllocRequester() */
  1629.         ASLM_REQUEST            = BGUI_MB+703,   /* Request() */
  1630.         ASLM_FREEREQUEST        = BGUI_MB+704   /* FreeRequester() */
  1631.  
  1632. CONST   FRQ_Left                = ASLREQ_Left,
  1633.         FRQ_Top                 = ASLREQ_Top,
  1634.         FRQ_Width               = ASLREQ_Width,
  1635.         FRQ_Height              = ASLREQ_Height,
  1636.         FRQ_Drawer              = FILEREQ_Drawer,
  1637.         FRQ_File                = FILEREQ_File,
  1638.         FRQ_Pattern             = FILEREQ_Pattern,
  1639.         FRQ_Path                = FILEREQ_Path,
  1640.         FRQ_MultiHook           = FILEREQ_MultiHook,
  1641.  
  1642.         FRQ_OK                  = ASLREQ_OK,
  1643.         FRQ_CANCEL              = ASLREQ_CANCEL,
  1644.         FRQ_ERROR_NO_FREQ       = ASLREQ_ERROR_NO_FREQ,
  1645.         FRQ_ERROR_NO_MEM        = ASLREQ_ERROR_NO_MEM,
  1646.         FRM_DOREQUEST           = ASLM_DOREQUEST
  1647.  
  1648. /*****************************************************************************
  1649.  *
  1650.  *  "areaclass" - BOOPSI area gadget.
  1651.  *
  1652.  *  Tags: 2021 - 2100       Methods: ??
  1653.  *
  1654.  *      AREA_MinWidth and AREA_MinHeight are required attributes.
  1655.  *      Just pass the minimum area size you need here.
  1656.  */
  1657.  
  1658. CONST   AREA_MinWidth           = BGUI_TB+2021,    /* I---- */
  1659.         AREA_MinHeight          = BGUI_TB+2022,    /* I---- */
  1660.         AREA_AreaBox            = BGUI_TB+2023     /* --G-- */
  1661.  
  1662. /*****************************************************************************
  1663.  *
  1664.  *      "paletteclass" - BOOPSI palette class.
  1665.  *
  1666.  *      Tags: 2101 - 2180               Methods: 781-820
  1667.  */
  1668. CONST   PALETTE_Depth           = BGUI_TB+2101,  /* I---- */  /* V41.7 */
  1669.         PALETTE_ColorOffset     = BGUI_TB+2102,  /* I---- */  /* V41.7 */
  1670.         PALETTE_PenTable        = BGUI_TB+2103,  /* I---- */  /* V41.7 */
  1671.         PALETTE_CurrentColor    = BGUI_TB+2104,  /* ISGNU */  /* V41.7 */
  1672.  
  1673. /*****************************************************************************
  1674.  *
  1675.  *      "popbuttonclass" - BOOPSI popbutton class.
  1676.  *
  1677.  *      Tags: 2181 - 2260               Methods: 821-860
  1678.  */
  1679.         PMB_Image               = BGUI_TB+2181,  /* IS--- */  /* V41.7 */
  1680.         PMB_MenuEntries         = BGUI_TB+2182,  /* IS--- */  /* V41.7 */
  1681.         PMB_MenuNumber          = BGUI_TB+2183,  /* --GN- */  /* V41.7 */
  1682.         PMB_PopPosition         = BGUI_TB+2184  /* I---- */  /* V41.7 */
  1683. /*
  1684. ** All labelclass attributes are usable at create time (I).
  1685. ** The vectorclass attributes are usable at create time and
  1686. ** with OM_SET (IS).
  1687. **/
  1688.  
  1689. /*
  1690. ** An array of these structures define
  1691. ** the menu labels.
  1692. **/
  1693. OBJECT PopMenu
  1694.     Label:PTR TO CHAR,   /* Menu text, NULL terminates array. */
  1695.     Flags:INT,           /* See below. */
  1696.     MutualExclude:LONG   /* Mutual-exclusion. */
  1697.  
  1698. /* Flags */
  1699. CONST   PMF_CHECKIT     = 1,         /* Checkable (toggle) item. */
  1700.         PMF_CHECKED     = 2,         /* The item is checked. */
  1701.         PMF_DISABLED    = 4          /* The item is disabled. (NMC:Added) */
  1702.  
  1703. /*
  1704. ** Special menu entry.
  1705. **/
  1706. CONST   PMB_BARLABEL    = -1
  1707.  
  1708. /* New Methods */
  1709. CONST   PMBM_CHECK_STATUS               = BGUI_MB+821,
  1710.         PMBM_CHECK_MENU                 = BGUI_MB+822,
  1711.         PMBM_UNCHECK_MENU               = BGUI_MB+823,
  1712.         PMBM_ENABLE_ITEM                = BGUI_MB+824,
  1713.         PMBM_DISABLE_ITEM               = BGUI_MB+825,
  1714.         PMBM_ENABLE_STATUS              = BGUI_MB+826
  1715.  
  1716. OBJECT PMBMCommand
  1717.     MethodID:LONG,
  1718.     MenuNumber:LONG  /* Menu to perform action on. */
  1719.